classdef AbstractAnalyser < MeasurementComponent.MeasurementComponent
    %ABSTRACTANALYSER Summary of this class goes here
    %   Detailed explanation goes here
    
    properties
        device
    end
    
    properties
        last_setting
        current_setting
    end

    
    methods
        function obj = AbstractAnalyser(name, type, device)
            %ABSTRACTANALYSER Construct an instance of this class
            %   Detailed explanation goes here
            p=inputParser;
            p.addRequired('device', @(x) isa(x, 'EquipmentControl.ZI.ziMFLI'));
            p.addRequired('type', @(x) ismember(x, {'Oscillator', 'Demodulator'}));
            p.parse(device, type);

            obj@MeasurementComponent.MeasurementComponent(name, type);

            obj.device = device;
        end
        function disp(obj)
            setting = obj.getCurrentSetting();
            infoStr = sprintf('Present Settings of [%s]:', obj.name);
            fprintf('%s\n%s\n', infoStr, repmat('-', 1, length(infoStr)));
            disp(struct2table(setting));
        end
    end
end

